// 服务端
#include "Comm.hpp"
#include "Fifo.hpp"
#include <unistd.h>
int main()
{
    // 获取key
    key_t key = GetShmKeyOrDie();
    cout << "key:" << ToHex(key) << endl;

    // 创建共享内存
    int shmid = Creatshm(key, defaultsize);
    // sleep(3);
    cout << "创建共享内存成功" << endl;
    // sleep(1);

    // sleep(10);

    // 挂接共享内存
    char *addr = (char *)shmAttach(shmid);
    cout << "挂接成功,起始虚拟地址为:" << ToHex((uint64_t)addr) << endl;

    // DebugPrint(shmid);

    // 创建管道，进行进程间同步、协同
    Fifo fifo(Path);
    Sync s;
    s.OpenRead();
    // 进程间通信

    for (;;)
    {
        if (!s.Wait())
        {
            break;
        }
        cout << "读取数据为:" << addr << endl;
        // sleep(1);
    }

    // 去关联
    ShmDetach(addr);

    // 删除共享内存
    DeleteShm(shmid);
    return 0;
}